#ifndef WINDOW_MANAGER_H
#define WINDOW_MANAGER_H

#include "lvgl.h"
#include "album_play.h"
#include <stdbool.h>

// 全局界面对象声明
extern lv_obj_t *home_screen;
extern lv_obj_t *admin_screen;
extern lv_obj_t *album_screen;

// 窗口管理变量声明
extern lv_obj_t *current_win;

/**
 * @brief 关闭窗口事件回调
 * @param e 事件对象
 */
void close_win_event_cb(lv_event_t *e);

/**
 * @brief 相册界面按钮事件回调
 * @param event 事件对象
 */
void album_btn_event_callback(lv_event_t *event);

/**
 * @brief 管理界面按钮事件回调
 * @param event 事件对象
 */
void admin_btn_event_callback(lv_event_t *event);

/**
 * @brief 主界面按钮事件回调
 * @param event 事件对象
 */
void home_btn_event_callback(lv_event_t *event);

// 窗口管理辅助函数声明

/**
 * @brief 检查是否有窗口打开
 * @return 如果有窗口打开返回true，否则返回false
 */
bool is_window_open(void);

/**
 * @brief 获取当前窗口指针
 * @return 当前打开的窗口指针，如果没有窗口打开则返回NULL
 */
lv_obj_t *get_current_window(void);

/**
 * @brief 强制关闭所有窗口
 */
void force_close_all_windows(void);

/**
 * @brief 窗口管理器状态查询
 */
void window_manager_get_status(void);

#endif